package com.hsurosy.domain.strategy.model.entity;

import com.hsurosy.types.common.Constants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;


/**
 * @Author Hsu琛君珩
 * @Date 2024-10-15 20:05
 * @Description 策略实体
 * @Version: v1.0.0
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class StrategyEntity {

    /** 抽奖策略ID */
    private Long strategyId;
    /** 抽奖策略描述 */
    private String strategyDesc;
    /** 规则模型，rule配置的模型同步到此表，便于使用 rule_weight,rule_blacklist*/
    private String ruleModels;

    /**
     * 获取规则模型的数组形式
     *
     * @return 包含规则模型的数组，如果规则模型为空则返回null。
     */
    public String[] ruleModels() {
        if (StringUtils.isBlank(ruleModels)) {
            return null; // 检查是否为空
        }
        return ruleModels.split(Constants.SPLIT); // 按 , 拆分字符串
    }

    /**
     * 获取权重规则模型
     *
     * @return 如果规则模型中存在 "rule_weight"，则返回该值；否则返回null。
     */
    public String getRuleWeight() {
        String[] ruleModels = this.ruleModels(); // 获取规则模型数组
        if (null == ruleModels) {
            return null; // 如果数组为空，返回null
        }
        for (String ruleModel : ruleModels) { // 遍历规则模型
            if ("rule_weight".equals(ruleModel)) {
                return ruleModel; // 匹配 "rule_weight"
            }
        }
        return null; // 未找到 "rule_weight"
    }

}
